def trace(f, *args, **kwargs):
    print("args =", args)
    print("kwargs =", kwargs)
    result = f(*args, **kwargs)
    print("result =", result)
    return result
    
trace(int, "ff", base=16)


#Transposing Tables
#tables of daytime temperatures:
sunday = [12, 14, 15, 15, 17, 21, 22, 22, 23, 22, 20, 18]
monday = [13, 14, 14, 14, 16, 20, 21, 22, 22, 21, 19, 17]
for item in zip(sunday, monday):
    print(item)


tuesday = [2, 2, 3, 7, 9, 10, 11, 12, 10, 9, 8, 8]
for item in zip(sunday, monday, tuesday):
    print(item)


#Combine in single data structure 
daily = [sunday, monday, tuesday]

#Printing data for each week
from pprint import pprint as pp
pp(daily)

#Priting data for each day of the week
for item in zip(daily[0], daily[1], daily[2]):
    print(item)
#Or...
for item in zip(*daily):
    print(item)
#Or, even...
t = list(zip(*daily))

#t is the transposed version of daily
pp(daily)
pp(t)